﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

using PortalIntranet.DatabaseComponents.Administracao;
using PortalIntranet.DatabaseComponents.Comun;
using System.Data.Entity.ModelConfiguration;

namespace PortalIntranet.DatabaseComponents.Seguranca
{
	[Serializable]
	[Table("Grupos")]
	public class Grupo : Entidade
	{
		public Grupo()
		{
			this.Usuarios = new HashSet<Usuario>();
		}

		[Required, MaxLength(50)]
		public string Nome { get; set; }

		#region Empresa
		public int EmpresaId { get; set; }

		public virtual Empresa Empresa { get; set; }
		#endregion

		#region Navegação
		public virtual ICollection<Usuario> Usuarios { get; set; }
		#endregion
	}

	internal class GrupoConfiguration : EntityTypeConfiguration<Grupo>
	{
		internal GrupoConfiguration()
		{
			this.HasRequired(b => b.Empresa)
				.WithMany(i => i.Grupos)
				.HasForeignKey(b => b.EmpresaId);
		}
	}
}
